package src.CodeTop;

/**
 *给定一个二进制数组， 计算其中最大连续 1 的个数。
 *
 *  
 *
 * 示例：
 *
 * 输入：[1,1,0,1,1,1]
 * 输出：3
 * 解释：开头的两位和最后的三位都是连续 1 ，所以最大连续 1 的个数是 3.
 *  
 *
 * 提示：
 *
 * 输入的数组只包含 0 和 1 。
 * 输入数组的长度是正整数，且不超过 10,000。
 *
 */

public class _485MaxConsecutiveOnes {
    public static void main(String[] args) {
        int[] nums = {1, 1, 0, 1, 1, 1};
        int target = findMaxConsecutiveOnes(nums);
        System.out.println(target);
    }

    public static int findMaxConsecutiveOnes(int[] nums) {
        // 初始化1出现的次数
        int max = Integer.MIN_VALUE;
        // 记录1出现的次数
        int times = 0;
        // 遍历数组
        for (int i = 0 ; i < nums.length ; i++) {
            // 如果当前数字为1
            if (nums[i] == 1) {
                // 次数自增
                times++;
            }else {
                // 迭代次数
                max = Math.max(max, times);
                // 重置次数
                times = 0;
            }
        }
        // 最后再迭代一次
        max = Math.max(max, times);
        return max;
    }
}
